package net

import (
	"bufio"
	"io/ioutil"
	"net/http"
	"time"

	"golang.org/x/net/html/charset"
	"golang.org/x/text/transform"
)

var tick = time.Tick(time.Second)

// 根据种子页面返回相应的html内容
func Fether(path string) string {
	<-tick // 在多协程中所有的协程都等着抢他谁抢到谁执行下面起到了缓执行的
	resp, err := http.Get(path)

	if err != nil {
		return ""
	}

	if resp.StatusCode != http.StatusOK {
		return ""
	}

	// 统一转码
	// 获取解析的正确编码
	b := bufio.NewReader(resp.Body)
	hdByte, _ := b.Peek(1024)
	e, _, _ := charset.DetermineEncoding(hdByte, "")
	// 转码 这里不能用 hdByte 因为已经读取了1024 这里需要从头开始
	ioreader := transform.NewReader(b, e.NewDecoder())
	rt, _ := ioutil.ReadAll(ioreader)

	// 默认编码unicode.UTF8

	return string(rt)
}
